/**
 * 日期格式化工具类
 */
const DateFormat = {
    /**
     * 格式化日期
     * @param {Date|string|number} date 日期对象、日期字符串或时间戳
     * @param {string} format 格式化字符串，默认为 'YYYY-MM-DD HH:mm:ss'
     * @returns {string} 格式化后的日期字符串
     */
    format(date, format = 'YYYY-MM-DD HH:mm:ss') {
        if (!date) {
            return '';
        }

        let dateObj;

        if (typeof date === 'string' || typeof date === 'number') {
            dateObj = new Date(date);
        } else if (date instanceof Date) {
            dateObj = date;
        } else {
            return ''; // 无法解析的日期类型
        }

        if (isNaN(dateObj.getTime())) {
            return ''; // 无效的日期
        }

        const year = dateObj.getFullYear();
        const month = String(dateObj.getMonth() + 1).padStart(2, '0');
        const day = String(dateObj.getDate()).padStart(2, '0');
        const hours = String(dateObj.getHours()).padStart(2, '0');
        const minutes = String(dateObj.getMinutes()).padStart(2, '0');
        const seconds = String(dateObj.getSeconds()).padStart(2, '0');

        const formatMap = {
            'YYYY': year,
            'MM': month,
            'DD': day,
            'HH': hours,
            'mm': minutes,
            'ss': seconds
        };

        let formattedDate = format;
        for (const key in formatMap) {
            const regex = new RegExp(key, 'g');
            formattedDate = formattedDate.replace(regex, formatMap[key]);
        }

        return formattedDate;
    }
};

export default DateFormat;